$(function() {
	var ids = $("#presentIds").val();
	if(ids != "") {
		var idsArr = ids.split(",");
		for(var i in idsArr) {
			var cheObj = $("#" + idsArr[i]);
			if(cheObj && cheObj.length > 0) {
				cheObj.prop("checked", "checked");
			}
		}
	}
	if($("input[name='chk']").not("input:checked").length == 0 && $("input[name='chk']:checked").length > 0) {
		// 选中全选框
		$("#selectAll").prop("checked", "checked");
	}
	if(isShowApplyAllFlag) {
		// 翻页或查询，控制“应用到其他待选商品”被选中时，修改表单控件的状态
		applyAllClicked();
		if($("input[name='chk']:checked").length > 1) {
			$("#applyAllFlag").attr("disabled", true);
			$("#applyAllFlagText").css("color", "#FF8888");
		}
	}
});

/**
 * 添加赠品
 */
function addPresent() {
	setSelectedId();
	var ids = $("#presentIds").val();
	if(ids == "") {
		layer.alert("请选择需要添加的赠品！");
		return;
	}
	var index = layer.load(2);
	$.ajax({
		type: "post",
		url: path + "/presentActivityController/queryPresentToJson",
		data:{ids: ids.split(",")},
		dataType: "json",
		success: function(data) {
			// 存储勾选的商品信息
			var rtv = [];
			for(var i in data) {
				var obj = {};
				obj.id = data[i].id;
				obj.name = data[i].name;
				obj.mercName = data[i].merchant.mercName;
				obj.stock = data[i].presentStock - data[i].presentSaleStock;
				obj.price = data[i].presentPrice ? data[i].presentPrice + "里程" : "";
				rtv.push(obj);
			}
			// 访问调用端的回调函数；返回勾选的商品信息，具体怎么处理取决于调用端的业务
			layer.close(index);
			var pWindowName = $("#pWindowName").val();
			var applyAllFlag = $('#applyAllFlag').prop('checked');
			if(isShowApplyAllFlag && applyAllFlag) {
				layer.confirm("是否确认应用至其他待选商品", function(index) {
					layer.close(index);
					parent.frames[pWindowName].getAddPresentInfo(rtv, applyAllFlag);
					closeLayer();
				});
			} else { // 标识复选框不存在或者未被选中时
				parent.frames[pWindowName].getAddPresentInfo(rtv, applyAllFlag);
				closeLayer();
			}
		},
		error: function() {
			layer.alert("获取赠品信息失败！");
			layer.close(index);
		}
	});
}

/**
 * 赠品信息复选框被点击时触发
 * @param ckObj 被选中的复选框对象
 */
function ckClicked(ckObj) {
	if(isShowApplyAllFlag) { // “应用到其他待选商品”
		if($(ckObj).prop("checked")) { // 选中
			if($("#applyAllFlag").prop("checked")) { // 此时只能勾选一条赠品信息
				$("input[name='chk'][value!='" + $(ckObj).val() + "']").prop("checked", "");
			} else {
				if($("input[name='chk']:checked").length > 1) {
					$("#applyAllFlag").attr("disabled", true);
					$("#applyAllFlagText").css("color", "#FF8888"); // 为了使禁用看起来明显点，故增加此处理
				}
			}
			if($("input[name='chk']").not("input:checked").length == 0) { // 所有复选框均被选中
				// 选中全选框
				$("#selectAll").prop("checked", "checked");
			}
		} else {
			$("#selectAll").prop("checked", "")
			if($("input[name='chk']:checked").length <= 1) {
				$("#applyAllFlag").attr("disabled", false);
				$("#applyAllFlagText").css("color", "red");
			}
		}
	} else { // 没有“应用到其他待选商品”复选框，则根据赠品是否全被选中更改复选框的选中状态
		if($(ckObj).prop("checked")) { // 选中
			if($("input[name='chk']").not("input:checked").length == 0) { // 所有复选框均被选中
				// 选中全选框
				$("#selectAll").prop("checked", "checked");
			}
		} else { // 取消选中
			$("#selectAll").prop("checked", "")
		}
	}
}

/**
 * "应用到其他待选商品"复选框被点击时触发
 */
function applyAllClicked() {
	if($("#applyAllFlag").prop("checked")) {
		// 禁用全选
		if($("input[name='chk']").length != 1) {
			$("#selectAll").attr("disabled", true);
		}
	} else {
		$("#selectAll").attr("disabled", false);
	}
}

/**
 * 查询
 */
function search() {
	$("#presentName").val($.trim($("#presentName").val()));
	if(isShowApplyAllFlag) {
		// 设置“应用到其他待选商品”是否被选中
		if($("#applyAllFlag").prop("checked")) {
			$("#applyAllIsChecked").val("true");
		} else {
			$("#applyAllIsChecked").val("false");
		}
	}
	setSelectedId();
	$("#search_form").submit();
}

/**
 * 重置查询条件
 */
function toIsEmpty() {
	$("#presentNo").val("");
	$("#presentName").val("");
	$("#merchantQoId").val("");
}

/**
 * 全选或取消全选
 */
function selectAll() {
	if($("#selectAll").prop("checked")) {
		$("input[name='chk']").prop("checked", "checked");
		if(isShowApplyAllFlag && $("input[name='chk']").length > 1) {
			$("#applyAllFlag").attr("disabled", true);
			$("#applyAllFlagText").css("color", "#FF8888");
		}
	} else {
		$("input[name='chk']").prop("checked", "");
		if(isShowApplyAllFlag) {
			$("#applyAllFlag").attr("disabled", false);
			$("#applyAllFlagText").css("color", "red");
		}
	}
}

/**
 * 设置被选中的数据行ID
 */
function setSelectedId() {
	if(isShowApplyAllFlag && $("#applyAllFlag").prop("checked")) {
		$("#presentIds").val("");
		var id = $("input[name='chk']:checked").val();
		$("#presentIds").val(id);
	} else {
		var presentIds = $("#presentIds").val();
		var ids_arr = presentIds == "" ? [] : presentIds.split(",");
		// 被选中的复选框
		var cheRows = $("input[name='chk']:checked");
		if(cheRows && cheRows.length > 0) {
			cheRows.each(function(index, ele){
				var id = $(this).val();
				if(getIndex(ids_arr, id) == -1) {
					ids_arr.push(id);
				}
			});
		}
		
		// 未被选中的复选框
		var unCheRows = $("input[name='chk']").not("input:checked");
		if(unCheRows && unCheRows.length > 0) {
			unCheRows.each(function(index, ele){
				var id = $(this).val();
				var index = getIndex(ids_arr, id);
				if(index != -1) {
					// 移除元素
					ids_arr.splice(index, 1);
				}
			});
		}
		$("#presentIds").val(ids_arr.join(","));
	}
}

/**
 * 获取某个值在数组中的位置，找不到返回-1
 * @param arr
 * @param v
 * @returns {Boolean}
 */
function getIndex(arr, v) {
	for(var i in arr) {
		if(arr[i] == v) {
			return i;
		}
	}
	return -1;
}

/**
 * 关闭本窗口
 */
function closeLayer() {
	var index = parent.layer.getFrameIndex(window.name); // 先得到当前iframe层的索引
	parent.layer.close(index); // 再执行关闭
}